var users; // 变量的类型由值的类型决定
var data;  // 二者均为undefined 栈内存里面分配
// json 数组 在堆内存中，独立于users，data 之外
// users，data，都是对json数组的引用
users = [
  { id: 1, name: '张三' ,hometown:'北京'},
  { id: 2, name: '李四' ,hometown:'上海'},
  { id: 3, name: '王五' ,hometown:'广州'}
]; //存的是地址
// var data = users; // 引用拷贝， 把地址给你

// 如何真正的去拷贝一个对象？深拷贝
// 深拷贝，是指在堆内存中，重新分配一个内存空间，存储拷贝的对象，而不是引用地址。
// 序列化 ：把对象转换为字符串 JSON.stringify()
//console.log(JSON.stringify(data),typeof JSON.stringify(data));// string
// 反序列化 ：把字符串转换为对象 JSON.parse()
//console.log(JSON.parse(JSON.stringify(users)),typeof JSON.parse(JSON.stringify(users)));// object
var data = JSON.parse(JSON.stringify(users));
data[0]['hobbies'] = ['篮球','足球','跑步'];
console.log(data, users);